#include<bits/stdc++.h>
using namespace std;
typedef long double ld;
const int NN=1e6+4;
ld l[NN];
int n;
bool check(ld mid)
{
	for(int i=1;i<=n;i++)
		if(l[i]>mid||sqrtl(mid*mid-l[i]*l[i])<0.5)
			return false;
	ld a=mid+1,b=mid+1;
	for(int i=1;i<=n;i++)
	{
		if(a<b)
			swap(a,b);
		a=min(a-1,sqrtl(mid*mid-l[i]*l[i]));
	}
	return a+b>=2;
}
int main()
{
	freopen("temple.in","r",stdin);
	freopen("temple.out","w",stdout);
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		ld x,y;
		scanf("%Lf%Lf",&x,&y);
		l[i]=min(sqrtl((x/2)*(x/2)+y*y),sqrtl((y/2)*(y/2)+x*x));
	}
	sort(l+1,l+1+n);
	ld l=0,r=1e18;
	while(r-l>1e-8)
	{
		ld mid=l+(r-l)/2;
		if(check(mid))
			r=mid;
		else
			l=mid;
	}
	printf("%.7Lf",l);
	return 0;
}
